package cn.bdqn.service.impl;

import cn.bdqn.domain.Notice;
import cn.bdqn.mapper.NoticeMapper;
import cn.bdqn.service.NoticeService;
import cn.bdqn.utils.result.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author dkj
 */
@Service(value = "noticeService")
public class NoticeServiceImpl implements NoticeService {


    /**
     *  /*
     *      * 通知公告接口
     *      */
    @Autowired
    private NoticeMapper noticeMapper;


    /**
     * 查询所有信息
     *      * @param pageNum 起始页数
     * @param pageNum
     * @return
     */
   @Override
   public Page queryAllNotice(Integer pageNum, Integer pageSize){
       //开启分页 每页显示十条数据
       PageHelper.startPage(pageNum >0 ? pageNum:1,pageSize);
       //获取查询的数据
       List<Notice> notices=noticeMapper.selectAll();
       //分页
       PageInfo<Notice> NoticepageInfo=new PageInfo<Notice>(notices);
       //封装分页数据
       Page page=new Page();
       //分页之后的数据
       page.setMenuList(NoticepageInfo.getList());
       //总记录数
       page.setTotalRecord((int)NoticepageInfo.getTotal());
       //返回封装的分页对象
       return page;
   }


    /**
     * 分页显示更新数据
     *      * @param pageNum
     * @param pageNum
     * @return
     */
    @Override
    public Page queryBYIssueTime(Integer pageNum) {
        //开启分页 每页显示十条数据
        PageHelper.startPage(pageNum >0 ? pageNum:1,10);
        //获取查询的数据
        List<Notice> notices=noticeMapper.selectByIssueTime();
        //分页
        PageInfo<Notice> NoticepageInfo=new PageInfo<Notice>(notices);
        //封装分页数据
        Page page=new Page();
        //分页之后的数据
        page.setMenuList(NoticepageInfo.getList());
        //总记录数
        page.setTotalRecord((int)NoticepageInfo.getTotal());
        //返回封装的分页对象
        return page;
    }

    /**
     * 新增一个通知公告
     * @param notice
     */
    @Override
    public void saveNotice(Notice notice) {
      noticeMapper.insert(notice);
    }

    /**
     * 修改一个通知公告
     * @param notice
     */
    @Override
    public void changeNotice(Notice notice) {
        noticeMapper.updateByPrimaryKeySelective(notice);
    }


}
